home *** CD-ROM | disk | FTP | other *** search
- /* $Id: XRAPI.H 1.60 1995/10/29 04:04:40 JOHN Exp $ */
- #ifndef __XRAPI__
- #define __XRAPI__
-
- #ifndef __XRTYPES__
- #include "XRTypes.h"
- #endif
-
- class TTree;
- class TLight;
- class T2DLineArt;
- class TCamera;
- class TBackground;
- class TBackdrop;
- class TAtmosphere;
- class TBuffer;
- class SDGraphicDevice;
- class TRenderInfo;
- struct ExternalInstance;
-
- struct RayHitParameters;
- struct HitInfo;
- struct RayHit3D;
- struct Ray3D;
-
- struct RTData {
- void *data;
- long channelBits;
- long channelOffsetBits;
- long columnBits;
- long rowBits;
- short nbrChannels;
- };
-
- struct RT32Data {
- short h;
- short v;
- TBuffer* distance;
- };
-
- struct RTBuffer {
- RTData color;
- RTData distance;
- RTData position;
- RTData normal;
- RTData alpha;
- RTData index;
- RTData surface;
- RT32Data buffers32;
- };
-
- typedef BOOLEAN (*TestHitProc) (TINSTANCE *theInstance);
-
-
- #if defined(qPointersD0) && defined(__MWERKS__) && defined(qPowerPC)
- #pragma pointers_in_D0
- #endif
-
- typedef void (RDXAPITYPE *XRendererSetUniverseTreeProc)(ExternalInstance *data,TTree* tree);
- typedef void (RDXAPITYPE *XRendererSetCameraProc)(ExternalInstance *data,TCamera *camera);
- typedef void (RDXAPITYPE *XRendererSetBackdropProc)(ExternalInstance *data,const TBackdrop *backdrop);
- typedef void (RDXAPITYPE *XRendererSetBackgroundProc)(ExternalInstance *data,const TBackground *background);
- typedef void (RDXAPITYPE *XRendererSetAtmosphereProc)(ExternalInstance *data,const TAtmosphere *atmosphere);
-
- typedef void (RDXAPITYPE *XRendererAddLightSourceProc)(ExternalInstance *data,TLight *aLight);
- typedef void (RDXAPITYPE *XRendererRemoveLightSourceProc)(ExternalInstance *data,TLight *aLight);
- typedef void (RDXAPITYPE *XRendererLightSourceModifiedProc)(ExternalInstance *data,TLight *aLight);
-
- typedef void (RDXAPITYPE *XRendererAddInstanceProc)(ExternalInstance *data,TINSTANCE *theInstance);
- typedef void (RDXAPITYPE *XRendererRemoveInstanceProc)(ExternalInstance *data,TINSTANCE *theInstance);
-
- typedef void (RDXAPITYPE *XRendererInstanceModifiedProc)(ExternalInstance *data,TINSTANCE *theInstance,short how);
-
- typedef void (RDXAPITYPE *XRendererDrawProc)(ExternalInstance *data,T2DLineArt &aLineArt,const RECT &area,short mode);
- typedef TRenderInfo* (RDXAPITYPE *XRendererPreDrawProc)(ExternalInstance *data,TRenderInfo* renderInfo,const RECT &area,const FIXED& zoom,short mode);
- typedef void (RDXAPITYPE *XRendererPostDrawProc)(ExternalInstance *data, TRenderInfo* renderInfo);
-
- //ray tracer
- typedef BOOLEAN (RDXAPITYPE *XRendererRayTraceProc)(ExternalInstance *data,const VECTOR2 &uv,HitInfo& TheInfo);
- typedef BOOLEAN (RDXAPITYPE *XRendererCollideProc)(ExternalInstance *data,const VECTOR3 &AA,const VECTOR3 &BB,VECTOR3 &QQ,FIXED &lamda,TestHitProc proc);
- typedef void (RDXAPITYPE *XRendererDrawRTProc)(ExternalInstance *data,short sizeH,short sizeV,const BOX2D &uvBox,const RTBuffer &bufferData,void (*callback)(short vv,void *priv),void *priv);
-
- //ZBuffer
- typedef void (RDXAPITYPE *XRendererPrepareDrawProc)(ExternalInstance *data,SDGraphicDevice *aGD,TBuffer *offscreen,TBuffer *zbuffer,const VECTOR2 &offset,void (*callback)(short vv,void *priv),void *priv);
- typedef void (RDXAPITYPE *XRendererRedrawInstanceProc)(ExternalInstance *data,TINSTANCE *theInstance,const RECT& aRect,const FIXED &zoom,short mode);
- typedef void (RDXAPITYPE *XRendererDrawInstanceProc)(ExternalInstance *data,TRenderInfo* renderInfo,TINSTANCE *theInstance,const RECT& aRect,const FIXED &zoom,short mode);
- typedef void (RDXAPITYPE *XRendererDrawAllProc)(ExternalInstance *data,const RECT& aRect,const FIXED &zoom,short mode);
- typedef void (RDXAPITYPE *XRendererDrawGridLineProc)(ExternalInstance *data,const VECTOR3& AA,const VECTOR3& BB, const COLOR& lineColor);
-
- typedef BOOLEAN (RDXAPITYPE *XRendererCanRayTraceProc)(ExternalInstance *data);
- typedef BOOLEAN (RDXAPITYPE *XRendererCanZBufferProc)(ExternalInstance *data);
- typedef BOOLEAN (RDXAPITYPE *XRendererCanLineArtProc)(ExternalInstance *data);
-
- typedef BOOLEAN (RDXAPITYPE *XRendererCanGBMaskProc)(ExternalInstance *data);
- typedef BOOLEAN (RDXAPITYPE *XRendererCanGBOtherProc)(ExternalInstance *data);
- typedef void (RDXAPITYPE *XRendererSetAmbientLightProc)(ExternalInstance *data,const COLOR &acolor);
- typedef void (RDXAPITYPE *XRendererSetRenderBoundsProc)(ExternalInstance *data,const BOX2D &hvBox);
- typedef void (RDXAPITYPE *XRendererDehydrateProc)(ExternalInstance *data,short level);
-
- typedef long (RDXAPITYPE *XRendererGetPreprocessTimeProc)(ExternalInstance *data);
- typedef void (RDXAPITYPE *XRendererSetZBClipFurtherProc)(ExternalInstance *data,const RECT &aclip);
- typedef void (RDXAPITYPE *XRendererSetRTPixelSizeProc)(ExternalInstance *data,FIXED du,FIXED dv);
-
- typedef void (RDXAPITYPE *XRendererGetExtraBufferParametersProc)(ExternalInstance *data,short* depth, short* nbPlanes, long* background);
-
- #if defined(qPointersD0) && defined(__MWERKS__) && defined(qPowerPC)
- #pragma pointers_in_A0
- #endif
-
- #endif
-